//
//  TWItemModel.swift
//  EyepetizerImitative
//
//  Created by 田伟 on 2017/3/10.
//  Copyright © 2017年 个人. All rights reserved.
//  视频模型

import UIKit

/// 每条帖子数据信息
class TWItemModel: NSObject {
    
    // MARK:- 属性
    var dataType : String?                                                              // 数据类型 ———— 决定展示的样式
    var category : String?                                                              // 分类，类别  #
    var date : NSNumber? {                                                              // 时间，上传时间？
        didSet {
            guard let date = date else {
                return
            }
            data_tw = NSNumber.createDateString(createAtStr: date)
        }
    }
    var descriptionEditor : String?                                                     // 详细描述
    var descriptionPgc : String?
//    var description : String?
    
    var duration : NSNumber?{                                                           // 视频的播放时长
        didSet {
            guard let duration = duration else {
                return
            }
            duration_tw = NSNumber.createDuringString(createAtStr: duration)
        }
    }
    var id : NSNumber?                                                                  // ID
    var playUrl : String?                                                               // 视频地址
    var releaseTime : NSNumber?{                                                        // 最新更新时间
        didSet {
            guard let releaseTime = releaseTime else {
                return
            }
            releaseTime_tw = NSNumber.createDateString(createAtStr: releaseTime)
        }
    }
    var title : String?                                                                 // 标题
    var consumption : consumptionModel?
    var cover : coverModel?                                                             // 封面
    var provider : providerModel?
    var playInfo : NSArray? {                                                           // 视频信息
        didSet {
            for playIF in playInfo! {
                let play = playInfoModel(dict: playIF as! [String : AnyObject])
                playInfo_tw.append(play)
            }
        }
    }
    var author : authorModel?                                                           // 作者信息
    
    // MARK:- 加上2个参数，这2个参数只有在TWItemCollectionModel里面的itemList中最后一个【查看全部才具备】
    var actionUrl : String?                                                             // 标题
    var text : String?                                                                  // 标题

    
    
    // MARK:- 自定义属性
    var playInfo_tw = [playInfoModel]()
    var data_tw : String?
    var releaseTime_tw : String?
    var duration_tw : String?
    
    // MARK:- 转成字典——自定义构造函数
    init(dict : [String : AnyObject]) {
        super.init()
        setValuesForKeys(dict)
        
        // 将第二层字典转模型
        // 转作者字典
        if let dict = dict["author"] as? [String : AnyObject] {
            author = authorModel(dict : dict)
        }
        // 转消费字典
        if let dict = dict["consumption"] as? [String : AnyObject] {
            consumption = consumptionModel(dict: dict)
        }
        // 转封面字典
        if let dict = dict["cover"] as? [String : AnyObject] {
            cover = coverModel(dict: dict)
        }
        // 转提供者字典
        if let dict = dict["provider"] as? [String : AnyObject] {
            provider = providerModel(dict: dict)
        }
    }
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}

// MARK:- 作者信息
class authorModel : NSObject {
    
    var tw_description : String?
    var icon : String?
    var tw_id : NSNumber?
    var latestReleaseTime : NSNumber?
    var name : String?
    var videoNum : NSNumber?
    // 转成字典——自定义构造函数
    init(dict : [String : AnyObject]) {
        super.init()
        tw_description = dict["description"] as! String?
        tw_id = dict["id"] as! NSNumber?
        setValuesForKeys(dict)
    }
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}

// MARK:- 消费状况
class consumptionModel: NSObject {
    
    var collectionCount : NSNumber?                                                     // 收藏数
    var replyCount : NSNumber?                                                          // 回复数
    var shareCount : NSNumber?                                                          // 分享数
    
    // 转成字典——自定义构造函数
    init(dict : [String : AnyObject]) {
        super.init()
        setValuesForKeys(dict)
    }
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}

// MARK:- 封面
class coverModel: NSObject {

    var blurred : String?                                                               // 模糊图背景使用
    var detail : String?                                                                // 详图
    var feed : String?                                                                  // 详图
    
    // 转成字典——自定义构造函数
    init(dict : [String : AnyObject]) {
        super.init()
        setValuesForKeys(dict)
    }
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}

// MARK:- 提供者
class providerModel: NSObject {
    
    var alias : String?                                                                 // 别名
    var icon : String?                                                                  // 头像
    var name : String?                                                                  // 名字
    
    // 转成字典——自定义构造函数
    init(dict : [String : AnyObject]) {
        super.init()
        setValuesForKeys(dict)
    }
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}

// MARK:- 视频播放信息
class playInfoModel: NSObject {
    
    var height : NSNumber?                                                              // 视频高度
    var name : String?                                                                  // 标清/高清
    var type : String?                                                                  // 清晰度类型：normal和high
    var url : String?                                                                   // 网址
    var width : NSNumber?                                                               // 视频宽度
    var urlList : NSArray?{                                                             // 网址数组
        didSet {
            for urlName in urlList! {
                let urlN = urlListModel(dict: urlName as! [String : AnyObject])
                urlList_tw.append(urlN)
            }
        }
    }
    
    // 自定义属性
    var urlList_tw = [urlListModel]()
    
    // 转成字典——自定义构造函数
    init(dict : [String : AnyObject]) {
        super.init()
        setValuesForKeys(dict)
    }
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}

// MARK:- 视频网址信息
class urlListModel: NSObject {
    
    var name : String?                                                                  // ucloud/qcloud
    var url : String?                                                                   // 网址
    
    // 转成字典——自定义构造函数
    init(dict : [String : AnyObject]) {
        super.init()
        setValuesForKeys(dict)
    }
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}

